// package com.example.demoopcjava.rtgard;
//
// import org.jinterop.dcom.common.JIException;
// import org.openscada.opc.lib.common.ConnectionInformation;
// import org.openscada.opc.lib.da.Server;
// import org.openscada.opc.lib.da.browser.Branch;
// import org.openscada.opc.lib.da.browser.FlatBrowser;
// import org.openscada.opc.lib.da.browser.Leaf;
//
// import java.net.UnknownHostException;
// import java.util.concurrent.Executors;
//
// /**
//  * <b><code>OpcTest2</code></b>
//  * <p>
//  * 列举连接下的所有Group和Item
//  * <p>
//  * <b>Create Time:</b> 2022/1/7 10:07.
//  *
//  * @author qd.yt
//  * @version 0.0.1
//  * @since demo-opc-java v0.0.1
//  */
// public class OpcTest2 {
//     public static void main(String[] args) throws Exception {
//         ConnectionInformation ci = new ConnectionInformation();
//         ci.setHost("127.0.0.1");
//         ci.setDomain("");
//         ci.setUser("test");
//         ci.setPassword("123456");
//         ci.setClsid("F8582D2E-88FB-11D0-B850-00C0F0104305");
//         ci.setProgId("Matrikon.OPC.Simulation.1");
//
//         Server server = new Server(ci, Executors.newSingleThreadScheduledExecutor());
//
//         server.connect();
//
//         dumpTree(server.getTreeBrowser().browse(), 0);
//         dumpFlat(server.getFlatBrowser());
//
//         server.disconnect();
//     }
//
//     private static void dumpFlat(final FlatBrowser browser)
//             throws IllegalArgumentException, UnknownHostException, JIException {
//         for (String name : browser.browse()) {
//             System.out.println(name);
//         }
//     }
//
//     private static void dumpTree(final Branch branch, final int level) {
//
//         for (final Leaf leaf : branch.getLeaves()) {
//             dumpLeaf(leaf, level);
//         }
//         for (final Branch subBranch : branch.getBranches()) {
//             dumpBranch(subBranch, level);
//             dumpTree(subBranch, level + 1);
//         }
//     }
//
//     private static String printTab(int level) {
//         StringBuilder sb = new StringBuilder();
//         for (int i = 0; i < level; i++) {
//             sb.append("\t");
//         }
//         return sb.toString();
//     }
//
//     private static void dumpLeaf(final Leaf leaf, final int level) {
//         System.out.println(printTab(level) + "Leaf: " + leaf.getName() + ":"
//                 + leaf.getItemId());
//     }
//
//     private static void dumpBranch(final Branch branch, final int level) {
//         System.out.println(printTab(level) + "Branch: " + branch.getName());
//     }
// }
